最近因為有某些公司要求,要做出後台預覽功能看前台的顯示狀況
所以我上網爬了很多文章也問了很多的人,大家秉持的方式都不一樣
1.如果不需要表單刷新送出的話,用Ajax是不錯的選擇
2.如果用存html的話,就是得在form內多寫一個target='black' 讓表單額外再開一個顯示
另外感謝『IT邦幫忙』的tzuchin大大給我靈感,所以我用2的方法來弄!!!
在viewz方面
1.先設一個隱藏值,等等傳值到controller時會用到!!
2.在js中下一個判斷,如果按下預覽功能,則會跑出新的頁面
3.如果單純只是要表單送出,就直接按submit就好
<?=form_open_multipart(admin_url('posts/edit/'.$cat.'/'.$item->id),$attributes);?>
<input type="reset" onClick="history.back();" value="回上頁" />
<input type="submit" value="確定送出"/>
<input type="button" value="預覽頁面(測試)" id="button" name="button" onclick="preview()" />
<input type="hidden" name="count" id="count" value="1">
<?=form_close();?>
<script type="text/javascript">
function preview(){
var x =document.getElementById('count').value;
x = x + 1 ;
document.forms['form12'].setAttribute("target","_blank");
document.forms['form12'].submit();
}
</script>
在controller方面
1.用if判斷在view的隱藏值為何
2.將要用的值帶入並送到前台顯示
public function edit() {
if($this->input->post('count') !=1){ 判斷是按預覽button還是``送出的submit
if ($this->form_validation->run() == true) {..... ));
$this->session->set_flashdata('message', $this->lang->line('success_edit'));
redirect(admin_url("posts/index/$cat"), 'refresh');
} else {
$data = array( ....);
$this->template->render('admin/post/'.$cat.'/edit', $data); 表單送出
}
}else{
$data = array(....);
$view_data = array(....);
$this->load->view(....); 預覽功能顯示
}
}
感謝各位的閱讀,以上是小弟第一次發文的
還請各位大大多多指教:D
後來改用switch來寫
switch (variable) {
case 'value':
# code...
break;
default:
# code...
break;
}